As high-speed and high-performance communications become necessary for many applications such as data warehousing, decision support, mail and messaging, and transaction processing applications, a clustering technology has been adopted to provide availability and scalability for these applications. A cluster is a group of one or more host systems (e.g., computers, servers and workstations), input/output (I/O) units which contain one or more I/O controllers (e.g. SCSI adapters, network adapters etc.) and switches that are linked together by an interconnection fabric to operate as a single data network to deliver high performance, low latency, and high reliability. Clustering offers three primary benefits: scalability, availability, and manageability. Scalability is obtained by allowing servers and/or workstations to work together and to allow additional services to be added for increased processing as needed. The cluster combines the processing power of all servers within the cluster to run a single logical application (such as a database server). Availability is obtained by allowing servers to “back each other up” in the case of failure. Likewise, manageability is obtained by allowing the cluster to be utilized as a single, unified computer resource, that is, the user sees the entire cluster (rather than any individual server) as the provider of services and applications.
Emerging network technologies for linking servers, workstations and network-connected storage devices within a cluster include InfiniBand™ and its predecessor, Next Generation I/O (NGIO) which have been recently developed by Intel Corp. and other companies to provide a standard-based I/O platform that uses a channel oriented, switched fabric and separate I/O channels to meet the growing needs of I/O reliability, scalability and performance on commercial high-volume servers, as set forth in the “Next Generation Input/Output (NGIO) Specification,” NGIO Forum on Jul. 20, 1999 and the “InfiniBand™ Architecture Specification,” Revision 1, the InfiniBand™ Trade Association on Jun. 19, 2001.
One major challenge to implementing clusters based on emerging NGIO/InfiniBand technology is to ensure that data messages traverse reliably between given ports of a source node (data transmitter) and a destination node (data receiver), via one or more switches and given transmission links of a switched fabric data network. Each host node may serve as a source (initiator) node which initiates a message data transfer or a destination node of a message passing operation. Each host node may also contain one or more channel adapters (CAs) each including multiple ports for redundancy and multiple data networks. Likewise, each switch may also include one or more ports for relaying data between the links to end nodes within the switched fabric data network.
According to the InfiniBand™ Architecture Specification as set forth on Jun. 19, 2001, each port in a switch or a channel adapter (CA) installed in the host node may be configured to support a single port operation mode of a different link width and speed. However, there is no mechanism as defined in the existing InfiniBand™ Architecture Specification to enable a single port to support multiple port width configurations for a greater freedom of connectivity and product differentiation. In addition, there is no existing port logic implemented or shared resource utilized to support InfiniBand™ ports configured for multiple port operation modes.
Therefore, there is a need for multiple port allocation and shared resource utilization to support multiple port configurations for different port operation modes on a host to handle data transfers in a switched fabric data network.